声明 模块 "vm" {

    //@@{ 上下文_:Context }
    接口 上下文_ {
        [键: 文字]: 任意;
    }

    //@@{ 基本选项_:BaseOptions }
    接口 基本选项_ {
        /**
         * Specifies the filename used in stack traces produced by this script.
         * Default: `''`.
         */

        //@@{ 文件名称:filename }
        文件名称?: 文字;
        /**
         * Specifies the line number offset that is displayed in stack traces produced by this script.
         * Default: `0`.
         */

        //@@{ 行偏移:lineOffset }
        行偏移?: 数字;
        /**
         * Specifies the column number offset that is displayed in stack traces produced by this script.
         * Default: `0`
         */

        //@@{ 列偏移:columnOffset }
        列偏移?: 数字;
    }

    //@@{ 脚本选项_:ScriptOptions, 基本选项_:BaseOptions }
    接口 脚本选项_ 扩展 基本选项_ {

        //@@{ 显示错误:displayErrors }
        显示错误?: 真假;

        //@@{ 超时:timeout }
        超时?: 数字;

        //@@{ 缓存数据:cachedData, 缓冲区_:Buffer }
        缓存数据?: 缓冲区_;

        //@@{ 产生缓存数据:produceCachedData }
        产生缓存数据?: 真假;
    }

    //@@{ 运行脚本选项_:RunningScriptOptions, 基本选项_:BaseOptions }
    接口 运行脚本选项_ 扩展 基本选项_ {

        //@@{ 显示错误:displayErrors }
        显示错误?: 真假;

        //@@{ 超时:timeout }
        超时?: 数字;
    }

    //@@{ 编译函数选项_:CompileFunctionOptions, 基本选项_:BaseOptions }
    接口 编译函数选项_ 扩展 基本选项_ {
        /**
         * Provides an optional data with V8's code cache data for the supplied source.
         */

        //@@{ 缓存数据:cachedData, 缓冲区_:Buffer }
        缓存数据?: 缓冲区_;
        /**
         * Specifies whether to produce new cache data.
         * Default: `false`,
         */

        //@@{ 产生缓存数据:produceCachedData }
        产生缓存数据?: 真假;
        /**
         * The sandbox/context in which the said function should be compiled in.
         */

        //@@{ 解析上下文:parsingContext, 上下文_:Context }
        解析上下文?: 上下文_;

        /**
         * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling
         */

        //@@{ 上下文扩展:contextExtensions, 实例_:Object }
        上下文扩展?: 实例_[];
    }

    //@@{ 脚本_:Script }
    类别 脚本_ {

        //@@{ 脚本选项_:ScriptOptions }
        构造(代码: 文字, 选项组?: 脚本选项_);

        //@@{ 启动在上下文:runInContext, 上下文_:Context, 运行脚本选项_:RunningScriptOptions }
        启动在上下文(实现上下文沙盒: 上下文_, 选项组?: 运行脚本选项_): 任意;

        //@@{ 启动在新上下文:runInNewContext, 上下文_:Context, 运行脚本选项_:RunningScriptOptions }
        启动在新上下文(沙盒?: 上下文_, 选项组?: 运行脚本选项_): 任意;

        //@@{ 启动在本体上下文:runInThisContext, 运行脚本选项_:RunningScriptOptions }
        启动在本体上下文(选项组?: 运行脚本选项_): 任意;
    }

    //@@{ 创建上下文:createContext, 上下文_:Context }
    函数 创建上下文(沙盒?: 上下文_): 上下文_;

    //@@{ 是上下文:isContext, 上下文_:Context }
    函数 是上下文(沙盒: 上下文_): 真假;

    //@@{ 启动在上下文:runInContext, 上下文_:Context, 运行脚本选项_:RunningScriptOptions }
    函数 启动在上下文(代码: 文字, 实现上下文沙盒: 上下文_, 选项组?: 运行脚本选项_ | 文字): 任意;

    //@@{ 启动在新上下文:runInNewContext, 上下文_:Context, 运行脚本选项_:RunningScriptOptions }
    函数 启动在新上下文(代码: 文字, 沙盒?: 上下文_, 选项组?: 运行脚本选项_ | 文字): 任意;

    //@@{ 启动在本体上下文:runInThisContext, 运行脚本选项_:RunningScriptOptions }
    函数 启动在本体上下文(代码: 文字, 选项组?: 运行脚本选项_ | 文字): 任意;

    //@@{ 编译函数:compileFunction, 编译函数选项_:CompileFunctionOptions, 函数_:Function }
    函数 编译函数(代码: 文字, 参数组: 文字[], 选项组: 编译函数选项_): 函数_;
}
